// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#pragma once
#include <CppUnitTest.h>
#include "targetver.h"

// Headers for CppUnitTest
// Collections
#include <Rz/Collections/Array.h>
#include <Rz/Collections/Dictionary.h>
#include <Rz/Collections/IEnumerable.h>
#include <Rz/Collections/IList.h>
#include <Rz/Collections/InitializerList.h>
#include <Rz/Collections/Iterator.h>
#include <Rz/Collections/List.h>
#include <Rz/Collections/ListCmp.h>

// Diagnostics
#include <Rz/Diagnostics/Logger.h>
#include <Rz/Diagnostics/PtrManager.h>

// Graphics/Scene
#include <Rz/Graphics/Scene/Node.h>
#include <Rz/Graphics/Scene/MeshNode.h>

// Graphics/Render/Libraries/DirectX11
#include <Rz/Graphics/Render/Libraries/DirectX11/DX11RenderDevice.h>
#include <Rz/Graphics/Render/Libraries/DirectX11/DX11Win32Viewer.h>

// Graphics/Render/Libraries/OpenGL
#include <Rz/Graphics/Render/Libraries/OpenGL/API/GLDefinitions.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/API/GLExt.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/API/GLWinExt.h>

#include <Rz/Graphics/Render/Libraries/OpenGL/GL.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLDepthStencilState.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLEffect.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLEffectProperty.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLIndexBuffer.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLArrayBuffer.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLRasterizerState.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLRenderDevice.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLSamplerState.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLTexture2D.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLVertexArray.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLVertexBuffer.h>
#include <Rz/Graphics/Render/Libraries/OpenGL/GLWin32Viewer.h>

// Graphics/Render
#include <Rz/Graphics/Render/Geometry.h>
#include <Rz/Graphics/Render/IArrayBuffer.h>
#include <Rz/Graphics/Render/IBuffer.h>
#include <Rz/Graphics/Render/IDepthStencilState.h>
#include <Rz/Graphics/Render/IDeviceResource.h>
#include <Rz/Graphics/Render/IEffect.h>
#include <Rz/Graphics/Render/IEffectProperty.h>
#include <Rz/Graphics/Render/IIndexBuffer.h>
#include <Rz/Graphics/Render/IRasterizerState.h>
#include <Rz/Graphics/Render/IRenderTarget2D.h>
#include <Rz/Graphics/Render/ISamplerState.h>
#include <Rz/Graphics/Render/ITexture.h>
#include <Rz/Graphics/Render/ITexture2D.h>
#include <Rz/Graphics/Render/IUniformBuffer.h>
#include <Rz/Graphics/Render/IVertexArray.h>
#include <Rz/Graphics/Render/IVertexBuffer.h>
#include <Rz/Graphics/Render/IViewer.h>
#include <Rz/Graphics/Render/IViewerHandler.h>

#include <Rz/Graphics/Render/VertexElement.h>
#include <Rz/Graphics/Render/VertexDescription.h>
#include <Rz/Graphics/Render/ViewerEvents.h>
#include <Rz/Graphics/Render/ViewerState.h>

// Graphics
#include <Rz/Graphics/Vector2.h>
#include <Rz/Graphics/Vector3.h>
#include <Rz/Graphics/Vector4.h>
#include <Rz/Graphics/Matrix3.h>
#include <Rz/Graphics/Matrix4.h>

// .
#include <Rz/Assert.h>
#include <Rz/IComparable.h>
#include <Rz/IHumanReadable.h>
#include <Rz/IObject.h>
#include <Rz/ITypeWrapper.h>
#include <Rz/Math.h>
#include <Rz/Memory.h>
#include <Rz/Object.h>
#include <Rz/Ptr.h>
#include <Rz/Range.h>
#include <Rz/ReferenceCounter.h>
#include <Rz/Singleton.h>
#include <Rz/String.h>
#include <Rz/Types.h>

// Standard libraries
#include <iostream>
#include <fstream>
#include <assert.h>

// TODO: reference additional headers your program requires here
